Application Monad
ググってもあまり引っかからないのでもっと適切な名前があるのかも知らんmrsekut.icon
tagless 関係なくhs全般の話
Monadを継承した型クラスのこと
任意のmonad内で特定の型を便利に扱うために定義された型クラス
例
code:hs
data Name = Name String
data User = User { name :: Name, age :: Int }
class Monad m => MonadDatabase m where
getUser :: Name -> m User
deleteUser :: User -> m ()
User型を(特定の場面で)便利に使用するために、MonadDatabaseというApplication Monadを定義している